package Negocio;

import java.io.BufferedInputStream;
import java.io.EOFException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;


import Objetos.Ciudades;

public class negCiudades {
    
    
	public void escribeCiudad(String nombre, String file)throws IOException, ClassNotFoundException{
	try{	
		  ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));
		  Ciudades ciudad = new Ciudades(1, nombre);
		  oos.writeObject(ciudad);	    	    
		 
          oos.close(); 
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	
	public void agregaCiudad(String nombre, String file){		
    try{
    		int id = ObtenerUltimoId(file) + 1;
            MiObjectOutputStream oos = new MiObjectOutputStream(new FileOutputStream(file,true));
            Ciudades ciudad = new Ciudades(id, nombre);
               
            oos.writeUnshared(ciudad);
            
            oos.close();
        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }
	
	public  ArrayList<Ciudades> leerCiudades(String file)throws IOException, ClassNotFoundException { 
		ArrayList<Ciudades> ciu = new ArrayList<Ciudades>();
	try{   
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file)); 
        Object aux = ois.readObject();        
        while (aux!=null)
        {
		    ciu.add((Ciudades)aux);
		    aux = ois.readObject();
        }
        ois.close();
        System.out.println(ciu.size());
        return ciu;                  
    }
    catch (EOFException e1)
    {
       return ciu;        
    }    	
}
	
	
	private int ObtenerUltimoId(String file)throws IOException, ClassNotFoundException{		
		ObjectInputStream ois = null;
		int count = 0;
		try{
			ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(file)));			
			Object aux = ois.readObject();        
	        while (aux!=null)
	        {
	        	count ++;
			    aux = ois.readObject();
	        }						
		return count;
		}catch(EOFException e){		
			return(count);
		}		
	}

}
	
	

